共计 833 个字符,预计需要花费 3 分钟才能阅读完成。
import java.util.Scanner;/*** 输入字符串s输出s中包含所有整数的最小和* 说明:* 字符串s只包含az,AZ,+,-,* 合法的整数包括正整数,一个或者多个0-9组成,如:0,2,3,002,102* 负整数,负号开头,数字部分由一个或者多个0-9组成,如-2,-012,-23,-00023* 输入描述:* 包含数字的字符串* 输出描述:* 所有整数的最小和* 示例* 输入:* bb1234aa* 输出:* 10* 输入:* bb12-34aa* 输出:* -31* 说明:* 1+2-(34)=-31*/public class OD_Z_T_01 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String line = scanner.nextLine();char[] chars = (line + "+").toCharArray();boolean flag = false; // 定义一个标记,是否是‘-’后面的数字,如果是的话就把数字串起来最大StringBuilder sb = new StringBuilder(); // 用来拼接负数字符int sum_min = 0;for (char aChar : chars) {if (Character.isDigit(aChar)) { //判断是否为数字if (flag) {sb.append(aChar); // 如果负数就先拼接} else {sum_min += aChar - 48; // 其他符号后面的直接计算,才能得到最小正数}continue;}if (flag && sb.length() != 0) { // 把前面拼接好的字符串计算出来,并且置空sum_min -= Integer.parseInt(sb.toString());sb.setLength(0);}flag = aChar == '-'; // 遇到负号改变标记}System.out.println(sum_min);}}
正文完


输出字符串中包含所有整数的最小和